home *** CD-ROM | disk | FTP | other *** search
- /*******************************************************************
-
- ExampleRequest.c
-
- Some Notes:
-
- I write my defines all in uppercase.
- All defines starting with "MSG_" are from the buildin.cd.
-
- *********************************************************************/
-
- #include "includes/ExampleRequest.h"
-
-
- void ExampleRequest( STRPTR args, struct Screen *screen, IPCData *ipc )
- {
- ERData *erd;
-
- // allocate some memory from our globally pool
- if( (erd = AllocMemH(mempool, sizeof(ERData))) )
- {
- if( *args )
- {
- erd->ptr_read = args;
-
- // going to the end of the args
- while( *erd->ptr_read++ );
-
- // it does point at least at the "\0" of the string,
- // Jonathan does also append a some other stuff, we
- // want this not at this stage :-)
- erd->ptr_read -= 3;
-
- // Now we can make a reversed copy
- erd->ptr_write = erd->buffer;
-
- while( ((ULONG) erd->ptr_read) >= ((ULONG) args) )
- {
- *erd->ptr_write++ = *erd->ptr_read--;
- erd->count++;
- }
-
- // since we have used our memorypool with the flag
- // MEMF_CLEAR and we have not used it before, we must
- // not append a "\0" to erd->buffer
- }
-
- sprintf( erd->output, "%s : %s%s : %s\n%s : %ld",
- DOpusGetString( locale, MSG_ARGUMENTS ), args,
- DOpusGetString( locale, MSG_REVERSED ), erd->buffer,
- DOpusGetString( locale, MSG_COUNTED ), erd->count );
-
- // now we are ready to open our requester
- // we do not check here the result, but should be at least
- // no problem for you...
-
- AsyncRequestTags( ipc, REQTYPE_SIMPLE, NULL, NULL, NULL,
-
- AR_Screen, screen,
- AR_Title, DOpusGetString(locale, MSG_ER_TITLE),
- AR_Message, erd->output,
- AR_Button, DOpusGetString(locale, MSG_OKAY_BUTTON),
- TAG_DONE );
-
- // free our memory
- FreeMemH( erd );
- }
- }
-
-